using System;
using System.Windows.Forms;
using App.Controlador.Seguridad;
using App.Git.Vista.Widgets;
using App.Modelo;
using App.Modelo.Attributes;
using App.widgets;

namespace App.Git.Vista
{
    [Formulario("Clientes")]
    public partial class ListadoCliente : ListadoBusquedaGenerico
    {
        private Cliente _cliente;

        public BusquedaClientesControl ControlBusqueda = new BusquedaClientesControl();

        #region Acciones del formulario
        public void alta()
        {

            DetalleCliente form = new DetalleCliente();
            form.MdiParent = MdiParent;
            form.ProponerAlta();

        }

        public void baja()
        {
            Show();
        }

        public void modificar()
        {
            Show();
        }

        [Comando("ver")]
        public void ver()
        {

            PerformSearch += new EventHandler(PerformSearchBuscarCliente);

            Show();
        }
        #endregion


        public ListadoCliente()
        {
            Registry.Instance.RegisterForm(this);

            InitializeComponent();

            AddColumn("Nombre", "NombreFantasia");
            AddColumn("Razon Social", "RazonSocial");
            AddColumn("Domicilio", "Domicilio");


            var BtnModificar = new ToolStripButton() { Text = "Ver/Modificar" };
            BtnModificar.Click += new EventHandler(BtnModificar_Click);

            Controles.Add(BtnModificar);

            SearchControls.Add(ControlBusqueda);
            


            ControlBusqueda.Dock = DockStyle.Top;
        }

        void BtnModificar_Click(object sender, EventArgs e)
        {
            if (ItemSeleccionado != null)
            {
                var form = new DetalleCliente();

                form.Cliente = (Cliente)ItemSeleccionado;
                form.Modificar();
            }

        }

        private void ConfirmarReparacion(object sender, EventArgs e)
        {
            ConfirmarReparacion f = new ConfirmarReparacion();
            f.ShowDialog();
        }

        public Cliente BuscarCliente()
        {
            PerformSearch += new EventHandler(PerformSearchBuscarCliente);

            this.ShowDialog();
            return _cliente;
        }

        private void ListadoCliente_ItemSelected(object sender, ListadoBusquedaItemEventArgs e)
        {
            _cliente = (Cliente)e.ItemSeleccionado;
            Hide();
        }

        private void ListadoCliente_Cancelar(object sender, EventArgs e)
        {
            _cliente = null;
            Hide();
        }

        private void PerformSearchBuscarCliente(object sender, EventArgs e)
        {
            DataSource = Registry.Instance.Controlador.Clientes.buscar(ControlBusqueda.FiltroNombre, 
                ControlBusqueda.FiltroDocumento,ControlBusqueda.FiltroDomicilio);
        }

        private void ListadoCliente_Load(object sender, EventArgs e)
        {

        }

        

     


 

    }
}